package logic

import (
	"context"
	"errors"

	"github.com/myblogs/dao/mysql"
	"github.com/myblogs/models"
)

var (
	ErrorTagExits    = errors.New("标签已存在")
	ErrorTagNotExits = errors.New("标签不存在")
)

type TagLogic struct {
	tagDao mysql.TagDaoInterface
}

func NewTagLogic(tag mysql.TagDaoInterface) *TagLogic {
	return &TagLogic{
		tagDao: tag,
	}
}
func (t *TagLogic) CreateTag(ctx context.Context, tag *models.Tags) error {
	// 检查标签是否存在
	_, err := t.tagDao.GetTagByID(ctx, tag.TagID)
	if err == nil {
		// 标签已存在
		return ErrorTagExits
	}
	return t.tagDao.CreateTag(ctx, tag)
}
func (t *TagLogic) GetAllTags(ctx context.Context) ([]*models.Tags, error) {
	tags, err := t.tagDao.GetAllTags(ctx)
	if err != nil {
		return nil, err
	}
	return tags, nil
}
